export default {
    // 数字区间
    validRange(min, max) {
        return (rule, value, callback) => {
            var val = parseFloat(value);
            if (max < val || val < min) {
                callback(new Error(rule.message || `取值范围在${min}到${max}之间`));
            } else {
                callback();
            }
        }
    },
    // 验证手机号格式
    validCellphone: (rule, value, callback) => {
        if (!/^(1[3|4|5|6|7|8|9][0-9]\d{8})?$/.test(value || "")) {
            callback(new Error(rule.message));
        } else {
            callback();
        }
    },
    // 验证座机
    validLandline: (rule, value, callback) => {
        if (!/^((\d{3}-?)?\d{7,8})?$/.test(value || "")) {
            callback(new Error(rule.message));
        } else {
            callback();
        }
    },
    // 验证用户qq号
    validUserQQ: (rule, value, callback) => {
        if (!/^([1-9][0-9]{4,})?$/.test(value || "")) {
            callback(new Error(rule.message));
        } else {
            callback();
        }
    },
    // 只能输入英文
    validNameEn: (rule, value, callback) => {
        if (!/^[a-zA-Z\s]*$/.test(value || "")) {
            callback(new Error(rule.message));
        } else {
            callback();
        }
    },
    //数字校验
    validNumber: (rule, value, callback) => {
        if (!/(^[\-0-9][0-9]*(.[0-9]+)?)$/.test(value || "")) {
            callback(new Error(rule.message));
        } else {
            callback();
        }
    },
    // 只能输入数字(整数)
    validIntNumber: (rule, value, callback) => {
        if (!/^[0-9]*$/.test(value || "")) {
            callback(new Error(rule.message));
        } else {
            callback();
        }
    },
    // 只能输入中文
    validChinese: (rule, value, callback) => {
        if (!(/^[\u4E00-\u9FA5]{1,4}$/.test(value))) {
            callback(new Error(rule.message || "只能输入中文"));
        } else {
            callback()
        }
    },
    // 身份证号验证（属性）
    validIDcard: (rule, value, callback) => {
        const reg = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
        if (value == '' || value == undefined || value == null) {
            callback();
        } else {
            if ((!reg.test(value)) && value != '') {
                callback(new Error(rule.message || '请输入正确的身份证号码'));
            } else {
                callback();
            }
        }
    },
    validateEMail: (rule, value, callback) => {
        const reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        if (value == '' || value == undefined || value == null) {
            callback();
        } else {
            if (!reg.test(value)) {
                callback(new Error(rule.message || '请输入正确的邮箱'));
            } else {
                callback();
            }
        }
    },
    isPassword: () => {
        const reg = /^[_a-zA-Z0-9]+$/;
        if (value == '' || value == undefined || value == null) {
            callback();
        } else {
            if (!reg.test(value)) {
                callback(new Error(rule.message || '仅由英文字母，数字以及下划线组成'));
            } else {
                callback();
            }
        }
    },
    validateUrl: (rule, value, callback) => {
        var reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/
        if (!reg.test(value)) {
            callback(new Error('请输入正确格式'))
        } else {
            callback()
        }
    }
}
